package com.study;

import java.util.Scanner;

/*
*******请选择菜单********
* 1.输出所有商品*
* 2.增加一-种商品*
* 3.删除一-种商品*
* 4.查询-种商品*
* 5.退出系统*
*****************************
请输入你的选择:
如果用户输入1，则在控制台逐行打印所有商品的详细信息(所有字段都打印)
然后系统自动回到主菜单。
如果用户输入2,则增加一种商品，为了简化操作，可以如下处理
首先删除编号为109的商品,(如果products表里没有编号为109的商品也可以执行删除语句)
然后生成一个109号的商品，
商品编号:109
商品名: 3G手机
品牌: Samsung
价格: 3500
库存:10
添加该商品到数据库的products表
在控制台打印:添加成功
然后系统自动回到主菜单
如果用户输入3:
则打印请输入被删除商品的编号:
然后读取用户的输入
如果删除成功，在控制台打印:删除成功
然后系统自动回到主菜单
如果用户输入4:
则打印请输入查询商品的编号:
然后读取用户的输入
如果查询成功，在控制台打印:查询结果是，后面打印该商品的详细信息
如果查询失败，打印:无法找到此商品!
然后系统自动回到主菜单
如果用户输入5:执行System.exit(0)退出系统。
 */
public class Main {
	public static void main(String[] args) {
		//实例化产品，并初始化数据
		Product product = new Product();
		RunAction(product);
	}

	static void RunAction(Product product){
		ShowMenu();
		int num = GetInputNum();
		//实现步骤如下：
		//1.如果用户输入1，则在控制台逐行打印所有商品的详细信息(所有字段都打印)
		//然后系统自动回到主菜单。
		if(num==1) product.OutputProducts();
		else if(num==2) {
			//2、如果用户输入2,则增加一种商品
			//然后系统自动回到主菜单
			product.AddProduct();
		}
		else if(num==3){
			//如果用户输入3:则打印请输入被删除商品的编号:
			//然后读取用户的输入如果删除成功，在控制台打印:删除成功
			//然后系统自动回到主菜单
			System.out.println("请输入被删除商品的编号:");
			int id = GetInputId();
			product.DeleteProduct(id);
		}
		else if(num==4){
			//如果用户输入4: 则打印请输入查询商品的编号:
			//然后读取用户的输入如果查询成功，在控制台打印:查询结果是，后面打印该商品的详细信息
			//如果查询失败，打印:无法找到此商品!
			//然后系统自动回到主菜单
			System.out.println("请输入查询商品的编号:");
			int id = GetInputId();
			product.SelectProduct(id);
		}

		if(num ==5) System.exit(0);
	    else RunAction(product);
	}

	static void ShowMenu() {
		System.out.println("*******请选择菜单********");
		System.out.println("* 1.输出所有商品*");
		System.out.println("* 2.增加一-种商品*");
		System.out.println("* 3.删除一-种商品*");
		System.out.println("* 4.查询-种商品*");
		System.out.println("* 5.退出系统*");
		System.out.println("*****************************");

		System.out.println("请输入你的选择:");
	}

	static int GetInputNum() {
		try {
			Scanner inp = new Scanner(System.in);
			String str = inp.next();
			int num = Integer.parseInt(str);
			if (num < 1 || num > 6) {
				System.out.println("请输入1~5的自然数");
				return GetInputNum();
			}
			return num;
		} catch (Exception ex) {
			System.out.println("请输入1~5的自然数");
			return GetInputNum();
		}
	}

	static int GetInputId() {
		try {
			Scanner inp = new Scanner(System.in);
			String str = inp.next();
			int num = Integer.parseInt(str);
			return num;
		} catch (Exception ex) {
			System.out.println("请输入自然数");
			return GetInputNum();
		}
	}
}
